Parallel Programming, List Homomorphisms and the Maximum Segment Sum Problem
نویسنده
چکیده
We review the use of the Bird-Meertens Formalism as a vehicle for the construction of programs with massive implicit parallelism. We show that a simple result from the theory, concerning the expression of list homomorph-isms, can help us in our search for parallel algorithms and demonstrate its application to some simple problems including the maximum segment sum problem. Our main purpose is to show that an understanding of the homo-morphism lemma can be helpful in producing programs for problems which are \not quite" list homomorphisms themselves. A more general goal is to illustrate the beneets which can arise from taking a little theory with a pinch of pragmatic salt.
منابع مشابه
Formal Derivation of Parallel Program for 2-Dimensional Maximum Segment Sum Problem
It has been attracting much attention to make use of list homomorphisms in parallel programming because they ideally suit the divide-and-conquer parallel paradigm. However, they have been usually treated rather informally and ad-hoc in the development of e cient parallel programs. This paper reports a case study on systematic and formal development of a new parallel program for the 2-dimensiona...
متن کاملConstruction of List Homomorphisms by Tupling and Fusion
List homomorphisms are functions which can be e ciently computed in parallel since they ideally suit the divide-and-conquer paradigm. However, some interesting functions, e.g., the maximum segment sum problem, are not list homomorphisms. In this paper, we propose a systematic way of embedding them into list homomorphisms so that parallel programs are derived. We show, with an example, how a sim...
متن کاملExtracting and Implementing List Homomorphisms in Parallel Program Development
Homomorphisms are functions that match the divide-and-conquer pattern and are widely used in parallel programming. Two problems are studied for homomorphisms on lists: (1) parallelism extraction: nding a homo-morphic representation of a given function; (2) parallelism implementation: deriving an eecient parallel program that computes the function. The proposed approach to parallelism extraction...
متن کاملSystematic Extraction and Implementation of Divide-and-Conquer Parallelism
Homomorphisms are functions that match the divide-and-conquer paradigm and thus can be computed in parallel. Two problems are studied for homomorphisms on lists: (1) parallelism extraction: nd-ing a homomorphic representation of a given function; (2) parallelism implementation: deriving an eecient parallel program that computes the function. A systematic approach to parallelism extraction proce...
متن کاملMaximum Segment Sum, Monadically (distilled tutorial, with solutions)
The maximum segment sum problem is to compute, given a list of integers, the largest of the sums of the contiguous segments of that list. This problem specification maps directly onto a cubic-time algorithm; however, there is a very elegant linear-time solution too. The problem is a classic exercise in the mathematics of program construction, illustrating important principles such as calculatio...
متن کامل